package com.pad.dpscn.daag.sdk.core.condition;

import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;
import org.springframework.util.ClassUtils;
/**
 * 
 * com.pad.dpscn.daag.sdk.core.condition  
 *  
 * <p>  
 * Description: 生效配置类  
 * </p>  
 *  
 * @author yangdezhao
 * @since 2024年3月11日  
 * @version 1.0
 */
public class DaagEffectCondition implements Condition {

	/**  
	 * 重写Condition接口的matches方法，用于判断自动配置类是否应该被加载。  
	 *  
	 * @param context  条件上下文，包含了加载条件所需的类加载器等信息  
	 * @param metadata 注释类型元数据，关于被检查配置的注解元数据  
	 * @return 如果MyBatis的SqlSessionFactory类存在，则返回true，否则返回false  
	 */ 
	
	@Override
	public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
		// 检查MyBatis的SqlSessionFactory类是否存在
		boolean isMyBatisAvailable = ClassUtils.isPresent("org.apache.ibatis.session.SqlSessionFactory",
				context.getClassLoader());
		if (!isMyBatisAvailable) {
			return false; // MyBatis不可用，直接返回false
		}
		return true;
	}
}
